![]() 根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法
专利摘要:
本發明係一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,係應用於一網路系統,該網路系統由一第一網路裝置、一第一網路位址轉譯器(network address translation,簡稱NAT)、一第二網路裝置、一第二NAT及一行為感知伺服器(NAT Behavior Aware Server,簡稱NBA)所形成,其中第一網路裝置與第一NAT位在一第一私有網域,且彼此相連結,第二網路裝置與第二NAT位在一第二私有網域,且彼此相連結,第一NAT與第二NAT能分別連結至位在網際網路中的NBA,該方法會使該等網路裝置與NBA相互傳送或回覆測試訊息,以使NBA能取得該等NAT的資訊,並藉由前述資訊,從複數個候選的穿越技術中,尋找一最佳的穿越技術,使第一網路裝置與第二網路裝置能直接穿越該等NAT,並建立一傳輸控制協定之直接連線。 公开号:TW201320695A 申请号:TW100140891 申请日:2011-11-09 公开日:2013-05-16 发明作者:jian-chao Zeng;Jia-Liang Lin;Kun-Ying Liu;cheng-yuan He 申请人:D Link Corp; IPC主号:H04L69-00
专利说明:
根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法 本發明係關於穿越網路位址轉譯器(network address translation,以下簡稱NAT)的技術,尤指一種利用傳輸控制協定(transmission control protocol,以下簡稱TCP)的追蹤特性,在兩個網路裝置欲彼此建立TCP連線之前,先與一行為感知伺服器(NAT Behavior Aware Server,以下簡稱NBA)相互傳送訊息,以能測試各個網路裝置所對應之NAT的行為,使得NBA能尋找一最佳的穿越技術,並告知該等網路裝置,令該等網路裝置能藉由前述最佳的穿越技術,分別穿越對應的NAT,進而彼此建立TCP連線。 按,對等網際網路技術(peer-to-peer,以下簡稱P2P)已是目前普遍使用的技術之一,透過P2P所形成之網路架構,使用者的網路裝置(如:桌上型電腦)能直接與其他使用者的網路裝置建立連線,以進行文件(如:圖片、音樂、錄影)共享交換、分散式計算或協同工作...等諸多應用。 然而,P2P於實際應用上仍會面臨部份問題,主要是由於網際網路(Internet)的快速發展,造成目前網際網路協定(Internet Protocol,簡稱IP)位址即將不敷使用,為了避免前述情況,人們大多會在私有網域和公眾網域的邊界處部署網路位址轉譯器(network address translation,以下簡稱NAT),所謂NAT是定義於RFC 1631的一個Internet標準,主要是對私有網域的網路裝置所發出的封包,進行IP位址轉換的動作,以便讓私有網域中多台網路裝置能夠共用一個公眾網域IP位址連接上網際網路,意即當私有網域發出的私有網域IP資料封包到達NAT時,NAT負責將私有網域IP位址轉換成公眾網域IP位址;當有外部發來的封包到達NAT設備後,NAT透過查閱自身保存的映射表(mapping table)裡的資訊,將公眾網域IP位址轉換成私有網域IP位址,再轉發到私有網域中對應的網路裝置。 承上,當兩個網路裝置欲以P2P的網路技術相互建立連線時,若該等網路裝置均分別位在不同私有網域的NAT後方時,由於NAT的特質是用以屏蔽私有網域,使得位在NAT後方之私有網域中的網路裝置,對於公眾網域來說皆是不可見,因此,受限於NAT所具有之映射行為(Mapping Behavior)、封包過濾規則(Filtering Behavior)與傳輸控制協定(transmission control protocol,以下簡稱TCP)狀態追蹤等特性的影響,會造成該等網路裝置彼此間無法直接建立連線路徑。 為能有效解決前述的問題,目前有研究提出一種CDCS(Case Driven Call Setup method)技術,查,該CDCS技術主要是針對用戶數據協定(User Datagram Protocol,簡稱UDP)的NAT穿越技術所設計,透過CDCS技術,網路裝置能夠搜集NAT資訊,並在各種不同的網路環境下利用Hole Punching 技術達到NAT穿越的目的,舉例而言,第一網路裝置與第二網路裝置會先自行收集自己私有網域之NAT的資訊,並向代理伺服器(Proxy server)註冊,以供代理伺服器能儲存該等網路裝置的NAT的資訊,嗣,當第一網路裝置與第二網路裝置欲進行通訊時,第一網路裝置會向代理伺服器發出訊息,並由代理伺服器轉送至第二網路裝置,同時,代理伺服器會依照雙方的NAT資訊,找出該等網路裝置的UDP公用端地址,並告知第一網路裝置和第二網路裝置如何進行Hole Punching,使得該等網路裝置能取得對方的UDP公用端地址,以彼此建立通訊連線。 惟,由於UDP是屬於非連線型(Connectionless)的非可靠傳輸協定,其不會運用確認機制來保證資料是否被正確接收?且亦不需重傳遺失的資料、不必按順序接收資料、不提供回傳機制來控制資料流的速度;但TCP則是屬於連線導向(Connection Oriented)的可靠傳輸,其具有狀態追蹤的特性,使得接收端(Callee)能以確認信息(Acknowledgement)回應發送端(Caller),以確定資料已無誤到達,同時接收端與發送端雙方會保留傳送的封包記錄,以作為下一筆封包資料的確認依據,又,TCP尚會利用計時器的機制,使的發送端在判斷出傳送逾時後,能重新發送封包,以確保資料的完整性。由於前述之CDCS技術僅針對UDP的NAT穿越技術所設計,並未考量到TCP所具有之特性(如:狀態追蹤),使得CDCS技術並不適用於TCP的NAT穿越上。 查,現今已有諸多研究提出多種TCP的NAT穿越技術,如:Establish the SYN-in(簡稱ESi)、SYN with Normal-TTL(簡稱SNT)、SYN with Low-TTL(簡稱SLT)與轉送(Relay)等,然而在不同網路環境之下,每個NAT的特性均不相同,使得前述的NAT穿越技術並非均適用於每一個NAT上,因此,當兩個網路裝置需分別透過對應的NAT,而試圖建立一條TCP的直接連線路徑時,通常會採用兩種方式找出最適合的NAT穿越技術,其一是Sequential Connectivity Check with Initiator Changes,即兩個網路裝置會逐一測試前述的每一種NAT穿越技術,直至某一個NAT穿越技術能建立起連線路徑,但此舉會導致整體連線測試時間冗長,造成使用者的等待時間過長;其二是Parallel Connectivity Check with Initiator Changes,即兩個網路裝置會同時測試前述的每個NAT穿越技術,直至某一個NAT穿越技術能建立起連線路徑,但此舉會導致網路裝置於同一時間的訊息交換量大增,造成網路裝置消耗過多的網路資源。 故,如何能減少直接連線測試所花費的時間與消耗的資源,令兩個網路裝置能夠迅速地使用最佳的NAT穿越技術,並建立起TCP連線路徑,即成為許多網路服務業者刻正努力研發並亟欲達成的一重要目標。 有鑑於習知建立TCP連線路徑的方法,會產生花費過長的測試時間,或是消耗過多的資源等問題,故,發明人經過長久努力研究與實驗,終於開發設計出本發明之一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,以期藉由本發明之問世,能提高業者於相關網路市場中的競爭力。 本發明之一目的,係提供一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,主要是能先行測試出網路位址轉譯器(network address translation,以下簡稱NAT)的資訊,再根據NAT的資訊,尋找出一最佳的穿越技術,以能縮短使用者的等待時間,並降低網路資源的使用量,該方法係使位在不同私有網域中的兩個網路裝置,分別透過對應的網路位址轉譯器(network address translation,以下簡稱NAT),傳送複數個測試訊息予一網際網路中的行為感知伺服器(NAT Behavior Aware Server,以下簡稱NBA),嗣,NBA會分別傳送對應之回覆訊息予該等網路裝置,以測試對應NAT之行為,該等網路裝置會根據對應之NAT的行為分別產生一測試結果訊息,並將各該測試結果訊息傳送至NBA,NBA便會根據該第一NAT與該第二NAT的資訊,從複數個候選的穿越技術中,尋找一最佳的穿越技術,使該第一網路裝置與該第二網路裝置能直接穿越該第一NAT與該第二NAT,而在其間建立一傳輸控制協定(transmission control protocol,以下簡稱TCP)之直接連線。如此,日後當該等網路裝置間欲建立TCP連線時,由於該NBA已儲存有其對應之NAT的資訊,故能尋找出最佳的穿越技術,令該等網路裝置間快速地建立TCP之直接連線。 本發明之另一目的,係前述之NBA取得第一NAT與該第二NAT的資訊後,能將該等NAT的資訊傳送至第一網路裝置及/或第二網路裝置,並由接收到該NAT資訊的第一網路裝置及/或第二網路裝置,自行從複數個候選的穿越技術中,尋找一最佳的穿越技術,使該第一網路裝置與該第二網路裝置彼此間能建立一傳輸控制協定之直接連線,如此,便能降低NBA的負載量,且NBA亦不會被佔用過多的儲存空間,以儲存NAT的資訊。 為便 貴審查委員能對本發明目的、技術特徵及其功效,做更進一步之認識與瞭解,茲舉實施例配合圖式,詳細說明如下: 查,由於CDCS(Case Driven Call Setup method)技術,主要是針對用戶數據協定(User Datagram Protocol,簡稱UDP)的網路位址轉譯器(network address translation,以下簡稱NAT)穿越技術所設計,並不適用於傳輸控制協定(transmission control protocol,以下簡稱TCP)上,且CDCS所收集的NAT資訊僅有NAT類型,且前述NAT類型僅區分出完全圓錐型NAT(full-cone NAT)、非完全圓錐型NAT(non full-cone NAT)和對稱型NAT(symmetric NAT)等三種,但在實際上,非完全圓錐型NAT能根據封包過濾規則(Filtering Behavior)又區分為地址限制圓錐型NAT(address-restricted cone NAT)和端口限制圓錐型NAT(port-restricted cone NAT)等兩種,而針對地址限制圓錐型NAT和端口限制圓錐型NAT等不同的NAT類型,其應會具有不同限制而影響到實際Hole Punching進行的方式,惟,CDCS並未考量到前述的NAT類型,使得CDCS仍有改進加強之處。有鑑於此,發明人特別針對CDCS的技術手段與TCP狀態追蹤特性,進行研究,並設計出一種嶄新的技術,以能夠應用於TCP連線的NAT穿越上。 本發明係一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,在本發明之一較佳實施例中,請參閱第1圖所示,一網路系統包括一第一私有網域1、一第一網路裝置11(如:電腦)、一第一NAT 13、一第二私有網域2、一第二網路裝置21、一第二NAT 23及一行為感知伺服器31(NAT Behavior Aware Server,以下簡稱NBA),其中第一網路裝置11與第一NAT 13位在該第一私有網域1中,且彼此相連結,該第一網路裝置11係透過第一NAT 13而能與外界之網際網路3(Internet)中的電腦、伺服器等網路裝置相互傳送封包訊息;第二網路裝置21與第二NAT 23位在該第二私有網域2中,且彼此相連結,該第二網路裝置21係透過第二NAT 23而能與外界之網際網路3中的電腦、伺服器等網路裝置相互傳送封包訊息;另,該NBA位在網際網路3中,且能分別與第一NAT 13、第二NAT 23相連接,以與該等NAT 13、23相互傳送封包訊息。 承上,請參閱第1及2圖所示,當第一網路裝置11第一次與第二網路裝置21建立TCP的直接連線之前,第一網路裝置11與第二網路裝置21會分別透過對應的NAT 13、23傳送複數個測試訊息予NBA 31(如第2圖之箭頭A),以進行複數種測試行為(如:測試映射行為、封包過濾規則...等),嗣,該NBA 31在接收到該等測試訊息後,會依據該等測試訊息的內容,分別傳送對應之回覆訊息予第一網路裝置11與第二網路裝置21(如第2圖之箭頭B),以測試對應NAT 13、23之行為,又,第一網路裝置11與第二網路裝置21會根據是否接收到每一次回覆訊息,及根據每一次回覆訊息的內容,分別產生一測試結果訊息,並將各該測試結果訊息傳送予該NBA 31(如第2圖之箭頭C),俟NBA 31接收到各該測試結果訊息後,會讀取各該測試結果訊息中所包括之NAT 13、23資訊,並儲存前述NAT 13、23資訊,同時,NBA 31會根據各該對應NAT 13、23資訊,判斷出各該NAT 13、23的行為(如:映射行為、封包過濾規則...等),並從複數個候選的穿越技術(如:ESi、SNT、SLT、Relay)中,尋找一最佳的穿越技術,最後,NBA 31會分別產生一穿越訊息,且將各該穿越訊息傳送至第一網路裝置11與第二網路裝置21(如第2圖之箭頭D),第一網路裝置11與第二網路裝置21在接收到對應之穿越訊息後,即會根據各該穿越訊息的內容,分別穿越第一NAT 13與第二NAT 23,使得第一網路裝置11與第二網路裝置21間能建立TCP的連線(如第2圖之箭頭E)。 如此,復請參閱第1圖所示,透過本發明之方法,當第一網路裝置11與第二網路裝置21在第一次建立TCP的連線之前,NBA 31便能取得第一NAT 13與第二NAT 23的資訊,並能根據第一NAT 13與第二NAT 23的資訊,從複數個候選的穿越技術中,尋找出最佳的穿越技術,日後,當第一網路裝置11與第二網路裝置21又欲建立TCP的連線時,NBA 31即可直接產生對應的穿越訊息,並傳送至第一網路裝置11與第二網路裝置21,以在其間快速地建立TCP之直接連線,並可縮短每一次欲連線測試的時間,或降低反覆測試所產生的訊息量。 為明確揭露出前述的整體技術特徵,茲針對第一網路裝置11與NBA 31間的各個測試行為及如何取得第一NAT 13資訊,進行說明,其中NBA 31的網路介面會具有兩個公共的網際網路協定(Internet Protocol,簡稱IP)位址分別為IPa、IPb,IPa會開啟兩個socket以分別使用一第一連接埠P1與一第二連接埠P2,IPb則會開啟一個socket以使用一第三連接埠P3,如此,NBA 31便能透過該等連接埠P1、P2、P3傳送封包或接收封包,請參閱第1及3圖所示,首先,第一網路裝置11與NBA 31會進行映射行為(Mapping Behavior)測試,請參閱第1及3圖所示,第一網路裝置11會依據NBA 31的公共IP位址IPa、IPb,透過第一NAT 13分別送出三個綁定請求封包(Binding Request)至第一連接埠P1、第二連接埠P2與第三連接埠P3(如第3圖之箭頭M1、M2、M3),NBA 31在接收到該等綁定請求封包後,會分別自第一連接埠P1、第二連接埠P2與第三連接埠P3回覆第一網路裝置11三個綁定響應封包(Binding Response)(如第3圖之箭頭MR1、MR2、MR3),嗣,第一網路裝置11即可根據回覆的三個綁定響應封包,判斷出第一NAT 13的映射行為是Independent、Address Dependent或Port & Address Dependent。舉例而言,當第一NAT 13對該等連接埠P1、P2、P3皆使用自身同一個連接埠(port)時,則表示第一NAT 13的映射行為是與外部連接埠無關,而為Independent;當第一NAT 13對連接埠P1、P2是使用自身同一個連接埠,但對連接埠P3則使用自身另一個連接埠時,則表示第一NAT 13的映射行為是與外部IP位址有關,而為Address Dependent;當第一NAT 13對連接埠P1、P2、P3均使用自身不同的連接埠時,則表示第一NAT 13的映射行為是與外部IP位址及外部連接埠有關,而為Port & Address Dependent。 另,第一網路裝置11與NBA 31會進行兩個封包過濾規則測試(亦稱為TCP Filtering行為測試),一個是ESi Filtering行為測試,另一個則是Si Filtering行為測試,請參閱第1及4圖所示,在進行ESi(Establishment then SYN-in)Filtering行為測試時,第一網路裝置11會先以三向交握(three-way handshake)的方式,與NBA 31之公用的IP位址IPa間建立一TCP連線,由於三向交握係為習知技術,在此僅簡單描述,首先,第一網路裝置11透過第一NAT 13傳送一同步/啟動(synchronize/start,簡稱SYN)封包至NBA 31(如第4圖之箭頭T1),NBA 31會再傳送一同步確認(SYN-ACK)封包至第一網路裝置11(如第4圖之箭頭T2),最後第一網路裝置11會傳送一確認(acknowledge,簡稱ACK)封包至NBA 31(如第4圖之箭頭T3)。嗣,由於第一網路裝置11與NBA 31之公用IP位址IPa建立TCP連線時,第一NAT 13會使用自身的一連接埠以能傳送相關網路封包,因此,當該NBA 31從公用IP位址IPb送出一SYN封包至第一網路裝置11時,該SYN封包會經由第一NAT 13因建立TCP連線(第一網路裝置11與NBA 31之公用IP位址IPa)所使用的連接埠傳送出來,若第一網路裝置11能接收到NBA 31由公用IP位址IPb所送出的SYN封包(如第4圖之箭頭F1),則表示第一NAT 13的封包過濾規則是允許「Establishment then inbound SYN(即Establishment then SYN-in)」的封包順序出現,反之,若第一網路裝置11無法接收到NBA 31由公用IP位址IPb所送出的SYN封包(如第4圖之箭頭F2),則表示第一NAT 13的封包過濾規則是不允許「Establishment then inbound SYN」的封包順序出現。 又,在第一NAT 13經過ESi Filtering行為測試後,尚會進行Si(SYN IN)Filtering行為測試,請參閱第1及5圖所示,NBA 31會重新傳送一SYN封包至第一NAT 13中尚未開啟的連接埠(如第5圖之箭頭S1),由於前述之第一NAT 13的連接埠是未開啟,因此,第一NAT 13不會將該SYN封包傳送至第一網路裝置11,而是會自行處理,舉例而言,第一種處理方式是第一NAT 13會直接丟棄該SYN封包(如第5圖之箭頭S2);第二種處理方式是第一NAT 13會回覆一復位請求(Reset,簡稱RST)封包(如第5圖之箭頭S3);第三種處理方式則是第一NAT 13會回覆一目標主機不可達(ICMP Host Unreachable)封包(如第5圖之箭頭S4),如此,便能得知第一NAT 13的Si Filtering行為測試之結果。 再者,第一網路裝置11與NBA 31會進行四個TCP狀態追蹤行為測試,分別為SoSi(SYN-out SYN-in)TCP狀態追蹤行為測試、SoRiSi(SYN-out RST-in SYN-in)TCP狀態追蹤行為測試、SoUiSi(SYN-out UNR-in SYN-in)TCP狀態追蹤行為測試與SoTiSi(SYN-out TTL-in SYN-in)TCP狀態追蹤行為測試等,其中在進行SoSi TCP狀態追蹤行為測試時,請參閱第1及6圖所示,第一網路裝置11會經由第一NAT 13送出第一SYN封包至NBA 31(如第6圖之箭頭SS1),NBA 31收到該第一SYN封包後,會經由該第一NAT 13回覆一個第二SYN封包至第一網路裝置11,若第一網路裝置11能接收到第二SYN封包(如第6圖之箭頭SS2),則代表第一NAT 13能夠允許「SYN-out SYN-in」的封包順序;反之,若第一網路裝置11無法接收到第二SYN封包(如第6圖之箭頭SS3),意即,第一NAT 13不會將NBA 31所傳送的第二SYN封包再傳送至第一網路裝置11,則代表第一NAT 13不能夠允許「SYN-out SYN-in」的封包順序。 又,第一網路裝置11與NBA 31進行SoRiSi TCP狀態追蹤行為測試時,請參閱第1及7圖所示,第一網路裝置11會經由第一NAT 13送出第三SYN封包至NBA 31(如第7圖之箭頭SR1),嗣,NBA 31收到第三SYN封包後,會先回覆一個RST封包至第一NAT 13後(如第7圖之箭頭SR2),再經由第一NAT 13回覆一個第四SYN封包至第一網路裝置11,若第一網路裝置11能接收到第四SYN封包(如第7圖之箭頭SR3),則代表第一NAT 13能夠允許「SYN-out RST-in SYN-in」的封包順序;反之,若第一網路裝置11無法接收到第四SYN封包(如第7圖之箭頭SR4),則代表第一NAT 13不能夠允許「SYN-out RST-in SYN-in」的封包順序。 然後,第一網路裝置11與NBA 31進行SoUiSi TCP狀態追蹤行為測試時,請參閱第1及8圖所示,第一網路裝置11會經由第一NAT 13送出第五SYN封包至NBA 31(如第8圖之箭頭SU1),嗣,NBA 31收到第五SYN封包後,會先回覆一個目標主機不可達(ICMP Host Unreachable)封包至第一NAT 13後(如第8圖之箭頭SU2),再經由第一NAT 13回覆一個第六SYN封包至第一網路裝置11,若第一網路裝置11能接收到第六SYN封包(如第8圖之箭頭SU3),則代表第一NAT 13能夠允許「SYN-out UNR-in SYN-in」的封包順序;反之,若第一網路裝置11無法接收到第六SYN封包(如第8圖之箭頭SU4),則代表第一NAT 13不能夠允許「SYN-out UNR-in SYN-in」的封包順序。 最後,第一網路裝置11與NBA 31進行SoTiSi TCP狀態追蹤行為測試時,請參閱第1及9圖所示,第一網路裝置11會經由第一NAT 13送出第七SYN封包至NBA 31(如第9圖之箭頭ST1),嗣,NBA 31收到第七SYN封包後,會先回覆一個存活時間過期(ICMP TTL-Expired)封包至第一NAT 13後(如第9圖之箭頭ST2),再經由第一NAT 13回覆一個第八SYN封包至第一網路裝置11,若第一網路裝置11能接收到第八SYN封包(如第9圖之箭頭ST3),則代表第一NAT 13能夠允許「SYN-out TTL-in SYN-in」的封包順序;反之,若第一網路裝置11無法接收到第八SYN封包(如第9圖之箭頭ST4),則代表第一NAT 13不能夠允許「SYN-out TTL-in SYN-in」的封包順序。如此,透過前述之映射行為測試、封包過濾規則測試與TCP狀態追蹤行為測試後,第一網路裝置11便能取得第一NAT 13的行為資訊,並產生對應的測試訊息,同理,第二網路裝置21亦能透過前述之各個行為測試,取得第二NAT 23的行為資訊,並產生對應的測試訊息,嗣,該第一網路裝置11與第二網路裝置21即可將該等測試訊息傳送予NBA 31。 復請參閱第1圖所示,當NBA 31接收到該等測試訊息後,即會讀取該等測試結果訊息中包括之第一NAT 13與第二NAT 23的資訊,並儲存該等NAT 13、23的資訊,同時,NBA 31會根據該等NAT 13、23的資訊判斷出該等網路裝置11、21應採用何種穿越技術,及應該由哪一方先發出SYN封包以建立連線,嗣,該NBA 31會依前述資料產生一穿越訊息,例如:穿越訊息中包括使用ESi的穿越技術,且由第一網路裝置11首先建立連線...等,該NBA 31會再將該穿越訊息傳送至該第一網路裝置11與第二網路裝置21,惟,在此特別一提者,前述之穿越訊息的內容,能依業者的需求而自行調整,且前述針對NAT 13、23之行為測試的數量與順序,亦能夠依業者的設計需求而改變,合先陳明。 由於該等NAT 13、23具有不同的資訊時,其對應之穿越技術亦會隨之改變,茲僅就本發明所會使用之幾種穿越技術,列舉說明,第一種穿越技術是ESi(Establishment then SYN-in),請參閱第1及10圖所示,當第一NAT 13的封包過濾規則是允許「Establishment then inbound SYN(即Establishment then SYN-in)」時,第一網路裝置11會先與NBA 31建立TCP連線(如第10圖之箭頭ES1),同時,令該第一NAT 13產生一個映射行為所需的連接埠P4,意即,第一NAT 13會透過該連接埠P4傳送封包或接收封包,嗣,第二網路裝置21會透過該連接埠P4,與該第一網路裝置11建立TCP的直接連線(如第10圖之箭頭ES2),又,因ESi的穿越技術能直接使用第一NAT 13上的該連接埠P4,而不需使第一NAT 13再重新開啟新的連接埠,因此,在實際使用上,若該等網路裝置11、21能使用多個穿越技術時,ESi的穿越技術會具有最高的優先權。 另,第二種穿越技術是SNT(SYN with Normal-TTL),請參閱第1及11圖所示,首先,第一網路裝置11會先送出一個普通的SYN封包予第二網路裝置21,以試圖建立一條TCP連線,同時,前述動作會在第一NAT 13上產生一個映射行為所需的連接埠,嗣,當第二NAT 23收到非預期的SYN封包後(如第11圖之SN1),可能會產生三種行為之一,第一是直接丟棄該SYN封包(如第11圖之SN2);第二是回覆RST封包予第一網路裝置11(如第11圖之SN3);第三是回覆一無法訪問(ICMP unreachable)封包予第一網路裝置11(如第11圖之SN4);之後,第二網路裝置21會藉由第一網路裝置11於第一NAT 13上所使用的連接埠,傳送另一個SYN封包至第一網路裝置11(如第11圖之SN5),此時,若第一NAT 13沒有因接收到RST封包或無法訪問封包而將該連接埠封鎖,則第一網路裝置11便能接收到第二網路裝置21所傳來之該另一SYN封包,並回覆一個SYNACK封包予第二網路裝置21(如第11圖之SN6),又,當第二網路裝置21收到SYNACK封包後,即會回覆ACK封包(如第11圖之SN7),以建立TCP的直接連線。 又,第三種穿越技術是SLT(SYN with Low-TTL),請參閱第1及12圖所示,一開始,第一網路裝置11會先送出一個SYN封包,並在第一NAT 13上產生一個映射行為所需的連接埠,其中,該SYN封包的存活時間(TTL)會設為一較低的值,使得該SYN封包能夠通過第一NAT 13,但不會到達第二NAT 23(如第12圖之SL1),又,當位於第一NAT 13與第二NAT 23之間的中間路由器33(Intermediate Router)收到該SYN封包後,便會回覆一存活時間過期(ICMP TTL-Expired)封包予第一網路裝置11(如第12圖之SL2),此時,若第一NAT 13沒有因接收到該存活時間過期封包,而將該連接埠封鎖,則第一網路裝置11便能接收到第二網路裝置21傳來之另一SYN封包(如第12圖之SL3),嗣,第一網路裝置11會回覆一SYNACK封包予第二網路裝置21(如第12圖之SL4),該第二網路裝置21即會回覆ACK封包予第一網路裝置11(如第12圖之SL5),以建立TCP的連線,此外,由於SLT的穿越技術中,第一網路裝置11必須設定SYN封包的存活時間,使得SYN封包能穿越第一NAT 13,但無法到達第二NAT 23,因此,SLT與SNT相較之下,SNT會具有較高的優先權而被優先使用。 如此,復請參閱第1圖所示,當NBA 31已取得第一NAT 13與第二NAT 23的行為時,首先,會先判斷第一網路裝置11或第二網路裝置21是否能在ESi的穿越技術中,接收到SYN封包,意即該第一NAT 13或該第二NAT 23的封包過濾規則是否允許Establishment then inbound SYN的封包順序,其中若第一網路裝置11能接收到SYN封包(第一NAT 13允許Establishment then inbound SYN的封包順序),則採用ESi的穿越技術,且由第二網路裝置21傳送SYN封包予第一網路裝置11;同理,若第二網路裝置21能接收到SYN封包,則採用ESi的穿越技術,且由第一網路裝置11傳送SYN封包予第二網路裝置21。其次,假如該等網路裝置11、21均無法在ESi的穿越技術中,接收到SYN封包,則NBA 31會判斷第一NAT 13或第二NAT 23的映射行為是否皆為隨機依賴(randomly dependent),若是,則第一網路裝置11與第二網路裝置21僅能採用中繼(Relay)的穿越技術,意即,透過第三方伺服器繞送第一網路裝置11與第二網路裝置21間的資料。在此一提者,前述之隨機依賴(randomly dependent)係指當NAT 13、23的映射行為是Address Dependent或Port & Address Dependent時,NAT13、23開啟連接埠的方式,是採用隨機方式開啟連接埠,例如:NAT13、23開啟連接埠2000後,下一次需要時,會開啟連接埠2900,再次需要時則開啟連接埠1782...等。 承上所述,復請參閱第1圖,若第一NAT 13及第二NAT 23的映射行為並非隨機依賴(randomly dependent),則NBA 31尚會根據該等NAT 13、23於Si Filtering行為測試的結果,以判斷出該等NAT 13、23對於非預期之SYN封包的後續處理動作,並選擇對應之穿越技術,舉例而言,若第一NAT 13或第二NAT 23會直接丟棄非預期之SYN封包,且SoSi TCP狀態追蹤行為測試結果,係第一NAT 13或第二NAT 23能接收第二網路裝置21或第一網路裝置11傳來之SYN封包,則NBA 31會使該等網路裝置11、21採用SNT的穿越技術;若第一NAT 13或第二NAT 23會回覆一RST封包,且SoRiSi TCP狀態追蹤行為測試結果,係第一NAT 13或第二NAT 23能接收第二網路裝置21或第一網路裝置11傳來之SYN封包,則NBA 31會使該等網路裝置11、21採用SNT的穿越技術;若第一NAT 13或第二NAT 23會回覆一目標主機不可達(ICMP Host Unreachable)封包,且SoRiSi TCP狀態追蹤行為測試結果,第一NAT 13或第二NAT 23能接收第二網路裝置21或第一網路裝置11傳來之SYN封包,則NBA 31會使該等網路裝置11、21採用SNT的穿越技術;此外,若前述之SoSi、SoRiSi和SoUiSi的TCP狀態追蹤行為測試結果中,第一NAT 13或第二NAT 23皆不能接收第二網路裝置21或第一網路裝置11傳來之SYN封包,但SoTiSi TCP狀態追蹤行為測試結果,係第一NAT 13或第二NAT 23能接收第二網路裝置21或第一網路裝置11傳來之SYN封包,則NBA 31會使該等網路裝置11、21採用SLT的穿越技術;又,若前述之SoTiSi TCP狀態追蹤行為測試結果,係第一NAT 13或第二NAT 23無法接收第二網路裝置21或第一網路裝置11傳來之SYN封包,則NBA 31會使該等網路裝置11、21採用中繼(Relay)的穿越技術。 在前述之較佳實施例中,NBA31會自複數個候選的穿越技術(如:ESi、SNT、SLT、Relay)中,尋找一最佳的穿越技術,以使第一網路裝置11與第二網路裝置21彼此間建立一TCP之直接連線,但在本發明之其它實施例中,NBA31能夠在取得第一NAT 13與第二NAT 23的資訊後,直接將該等資訊傳送至第一網路裝置11及/或第二網路裝置21,嗣,接收到該等資訊的第一網路裝置11及/或第二網路裝置21,便能夠自行分析該等資訊,並由複數個候選的穿越技術中,尋找一最佳的穿越技術,且依該最佳的穿越技術穿越對應的NAT13、23,進而使第一網路裝置11與第二網路裝置21間建立TCP之直接連線。如此,在第一網路裝置11與第二網路裝置21已經建立過第一次TCP連線,且NBA 31已取得對應之NAT 13、23的資訊後,日後當第一網路裝置11與第二網路裝置21間,欲再建立TCP連線時,該NBA 31或該等網路裝置11、21便能迅速從複數個候選的穿越技術中,尋找出一最佳的穿越技術,令該第一網路裝置11與第二網路裝置21能直接穿越該第一NAT 13與該第二NAT 23,而在其間快速地建立一TCP之直接連線,故,本發明相較於習知Sequential Connectivity Check with Initiator Changes的方式,由於本發明不需累積測試失敗的時間,因此能縮短每一次欲連線的總花費時間,又,本發明相較於習知Parallel Connectivity Check with Initiator Changes的方式,由於本發明不會同時使用多種穿越技術,故能降低測試時所產生的總訊息量。按,以上所述,僅係本發明之較佳實施例,惟,本發明所主張之權利範圍,並不侷限於此,按凡熟悉該項技藝人士,依據本發明所揭露之技術內容,可輕易思及之等效變化,均應屬不脫離本發明之保護範疇。 1...第一私有網域 11...第一網路裝置 13...第一網路位址轉譯器 2...第二私有網域 21...第二網路裝置 23...第二網路位址轉譯器 3...網際網路 31...行為感知伺服器 33...中間路由器 IPa、IPb...IP位址 P1...第一連接埠 P2...第二連接埠 P3...第三連接埠 P4...連接埠 第1圖係本發明之網路系統示意圖; 第2圖係本發明之時序示意圖; 第3圖係本發明之Mapping行為測試的時序示意圖; 第4圖係本發明之ESi Filtering行為測試的時序示意圖; 第5圖係本發明之Si Fiitering行為測試的時序示意圖; 第6圖係本發明之SoSi TCP狀態追蹤行為測試的時序示意圖; 第7圖係本發明之SoRiSi TCP狀態追蹤行為測試的時序示意圖; 第8圖係本發明之SoUiSi TCP狀態追蹤行為測試的時序示意圖; 第9圖係本發明之SoTiSi TCP狀態追蹤行為測試的時序示意圖; 第10圖係本發明之ESi穿越技術的時序示意圖; 第11圖係本發明之SNT穿越技術的時序示意圖;及 第12圖係本發明之SLT穿越技術的時序示意圖。 11...第一網路裝置 13...第一網路位址轉譯器 21...第二網路裝置 23...第二網路位址轉譯器 31...行為感知伺服器
权利要求:
Claims (46) [1] 一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,係應用於一網路系統,該網路系統係由一第一網路裝置、一第一網路位址轉譯器、一第二網路裝置、一第二網路位址轉譯器及一行為感知伺服器所形成,其中該第一網路裝置與第一網路位址轉譯器係位在一第一私有網域,且彼此相連結,該第二網路裝置與第二網路位址轉譯器係位在一第二私有網域,且彼此相連結,該第一網路位址轉譯器與該第二網路位址轉譯器能分別連結至位在網際網路中的該行為感知伺服器,該方法包括下列步驟,以使該第一網路裝置與該第二網路裝置間能建立一傳輸控制協定之直接連線:該第一網路裝置與該第二網路裝置分別透過對應之該第一網路位址轉譯器及該第二網路位址轉譯器,傳送複數個測試訊息予該行為感知伺服器;該行為感知伺服器會根據所接收到之該等測試訊息,分別傳送對應之回覆訊息予該第一網路裝置與該第二網路裝置,以分別測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器之行為;該第一網路裝置與該第二網路裝置會根據是否接收到對應的回覆訊息,及根據各該回覆訊息的內容,分別產生一測試結果訊息,並將各該測試結果訊息傳送予該行為感知伺服器;及該行為感知伺服器在接收到各該測試結果訊息後,會讀取並儲存各該測試結果訊息中包括之對應之該第一網路位址轉譯器及該第二網路位址轉譯器之資訊,且會根據各該網路位址轉譯器之資訊,從複數個候選的穿越技術中,尋找一最佳的穿越技術,且分別產生及傳送一穿越訊息予該第一網路裝置與該第二網路裝置,以使該第一網路裝置與該第二網路裝置能根據各該穿越訊息的內容,分別穿越該第一網路位址轉譯器與該第二網路位址轉譯器,以在該第一網路裝置與該第二網路裝置間建立該傳輸控制協定連線。 [2] 如請求項1所述之建立一傳輸控制協定連線的方法,該行為感知伺服器的網路介面具有兩個公共的網際網路協定位址,其中一個網際網路協定位址會分別使用該行為感知伺服器的一第一連接埠與一第二連接埠,另一個網際網路協定位址會使用該行為感知伺服器的一第三連接埠,該行為感知伺服器係分別透過該第一連接埠、第二連接埠及第三連接埠,接收由該第一網路位址轉譯器及該第二網路位址轉譯器傳來之該等測試訊息,且傳送該等對應之回覆訊息至該第一網路裝置與該第二網路裝置,該第一網路裝置與該第二網路裝置所傳送之測試訊息係用以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的映射行為、封包過濾規則及傳輸控制協定狀態追蹤行為。 [3] 如請求項1所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的映射行為:該第一網路裝置與該第二網路裝置會分別依據該行為感知伺服器之二個公共的網際網路協定位址,透過對應之該第一網路位址轉譯器及該第二網路位址轉譯器分別送出三個綁定請求封包至該第一連接埠、該第二連接埠與該第三連接埠;該行為感知伺服器在接收到該等綁定請求封包後,會分別自該第一連接埠、該第二連接埠與該第三連接埠,分別回覆該第一網路裝置與該第二網路裝置三個綁定響應封包;及該第一網路裝置與該第二網路裝置分別根據回覆的三個綁定響應封包,判斷出對應的網路位址轉譯器的映射行為是Independent、Address Dependent或Port & Address Dependent。 [4] 如請求項3所述之建立一傳輸控制協定連線的方法,其中該封包過濾規則包括一ESi封包過濾規則及一Si封包過濾規則,且該方法尚包括下列步驟,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的該ESi封包過濾規則:該第一網路裝置與該第二網路裝置會分別與該行為感知伺服器之其中一個公共的網際網路協定位址建立一傳輸控制協定連線,且對應之該第一網路位址轉譯器及該第二網路位址轉譯器會分別使用一連接埠,以透過各該連接埠傳送封包與接收封包;該行為感知伺服器會由另一個公共的網際網路協定位址,對該第一網路裝置與該第二網路裝置分別送出一同步/啟動封包,且各該同步/啟動封包會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器的各該連接埠送出;在該第一網路裝置或該第二網路裝置能接收到各該同步/啟動封包的狀態下,表示該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是允許Establishment then inbound SYN的封包順序出現;及在該第一網路裝置或該第二網路裝置無法接收到各該同步/啟動封包的狀態下,表示該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是不允許Establishment then inbound SYN的封包順序出現。 [5] 如請求項4所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器尚會再分別傳送另一同步/啟動封包至該第一網路位址轉譯器與該第二網路位址轉譯器中尚未開啟的連接埠,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的該Si封包過濾規則是否為直接丟棄該另一同步/啟動封包、回覆一復位請求封包或回覆一目標主機不可達封包之其中之一。 [6] 如請求項5所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置與該第二網路裝置會透過SoSi傳輸控制協定狀態追蹤行為測試、SoRiSi傳輸控制協定狀態追蹤行為測試、SoUiSi傳輸控制協定狀態追蹤行為測試與SoTiSi傳輸控制協定狀態追蹤行為測試,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的傳輸控制協定狀態追蹤行為。 [7] 如請求項6所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第一同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到該第一同步/啟動封包後,會分別經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,回覆一第二同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第二同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是能夠允許SYN-out SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第二同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out SYN-in的封包順序。 [8] 如請求項7所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoRiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第三同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第三同步/啟動封包後,會先分別回覆一個復位請求封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第四同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置接收到各該第四同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out RST-in SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第四同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out RST-in SYN-in的封包順序。 [9] 如請求項8所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoUiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第五同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第五同步/啟動封包後,會先分別回覆一個目標主機不可達封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第六同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第六同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out UNR-in SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第六同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out UNR-in SYN-in的封包順序。 [10] 如請求項9所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoTiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第七同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第七同步/啟動封包後,會先分別回覆一個存活時間過期封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第八同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第八同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out TTL-in SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第八同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out TTL-in SYN-in的封包順序。 [11] 如請求項10所述之建立一傳輸控制協定連線的方法,其中複數個候選的穿越技術包括ESi、SNT、SLT與中繼。 [12] 如請求項11所述之建立一傳輸控制協定連線的方法,其中在該第一網路位址轉譯器或第二網路位址轉譯器能適用一種以上之穿越技術的狀態下,該等穿越技術被選擇的優先權由高至低依序為ESi、SNT、SLT與中繼。 [13] 如請求項12所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是允許Establishment then inbound SYN的封包順序的狀態下,係由該第二網路裝置或該第一網路裝置傳送同步/啟動封包予該第一網路裝置或該第二網路裝置。 [14] 如請求項12所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則均是不允許Establishment then inbound SYN的封包順序,且該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆為隨機依賴的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [15] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [16] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆RST封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [17] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [18] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [19] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆復位請求封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [20] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [21] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [22] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆復位請求封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [23] 如請求項14所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [24] 一種根據網路位址轉譯器之行為建立一傳輸控制協定連線的方法,係應用於一網路系統,該網路系統係由一第一網路裝置、一第一網路位址轉譯器、一第二網路裝置、一第二網路位址轉譯器及一行為感知伺服器所形成,其中該第一網路裝置與第一網路位址轉譯器係位在一第一私有網域,且彼此相連結,該第二網路裝置與第二網路位址轉譯器係位在一第二私有網域,且彼此相連結,該第一網路位址轉譯器與該第二網路位址轉譯器能分別連結至位在網際網路中的該行為感知伺服器,該方法包括下列步驟,以使該第一網路裝置與該第二網路裝置間能建立一傳輸控制協定之直接連線:該第一網路裝置與該第二網路裝置分別透過對應之該第一網路位址轉譯器及該第二網路位址轉譯器,傳送複數個測試訊息予該行為感知伺服器;該行為感知伺服器會根據所接收到之該等測試訊息,分別傳送對應之回覆訊息予該第一網路裝置與該第二網路裝置,以分別測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器之行為;該第一網路裝置與該第二網路裝置會根據是否接收到對應的回覆訊息,及根據各該回覆訊息的內容,分別產生一測試結果訊息,並將各該測試結果訊息傳送子該行為感知伺服器;該行為感知伺服器在接收到各該測試結果訊息後,會讀取各該測試結果訊息中包括之對應之該第一網路位址轉譯器及該第二網路位址轉譯器之資訊,且會將各該網路位址轉譯器之資訊,傳送至該第一網路裝置及/或該第二網路裝置;及該第一網路裝置或該第二網路裝置會依據各該網路位址轉譯器之資訊,從複數個候選的穿越技術中,尋找一最佳的穿越技術,且依該最佳的穿越技術,分別穿越該第一網路位址轉譯器與該第二網路位址轉譯器,以在該第一網路裝置與該第二網路裝置間建立該傳輸控制協定連線。 [25] 如請求項24所述之建立一傳輸控制協定連線的方法,該行為感知伺服器的網路介面具有兩個公共的網際網路協定位址,其中一個網際網路協定位址會分別使用該行為感知伺服器的一第一連接埠與一第二連接埠,另一個網際網路協定位址會使用該行為感知伺服器的一第三連接埠,該行為感知伺服器係分別透過該第一連接埠、第二連接埠及第三連接埠,接收由該第一網路位址轉譯器及該第二網路位址轉譯器傳來之該等測試訊息,且傳送該等對應之回覆訊息至該第一網路裝置與該第二網路裝置,該第一網路裝置與該第二網路裝置所傳送之測試訊息係用以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的映射行為、封包過濾規則及傳輸控制協定狀態追蹤行為。 [26] 如請求項24所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的映射行為:該第一網路裝置與該第二網路裝置會分別依據該行為感知伺服器之二個公共的網際網路協定位址,透過對應之該第一網路位址轉譯器及該第二網路位址轉譯器分別送出三個綁定請求封包至該第一連接埠、該第二連接埠與該第三連接埠;該行為感知伺服器在接收到該等綁定請求封包後,會分別自該第一連接埠、該第二連接埠與該第三連接埠,分別回覆該第一網路裝置與該第二網路裝置三個綁定響應封包;及該第一網路裝置與該第二網路裝置分別根據回覆的三個綁定響應封包,判斷出對應的網路位址轉譯器的映射行為是Independent、Address Dependent或Port & Address Dependent。 [27] 如請求項26所述之建立一傳輸控制協定連線的方法,其中該封包過濾規則包括一ESi封包過濾規則及一Si封包過濾規則,且該方法尚包括下列步驟,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的該ESi封包過濾規則:該第一網路裝置與該第二網路裝置會分別與該行為感知伺服器之其中一個公共的網際網路協定位址建立一傳輸控制協定連線,且對應之該第一網路位址轉譯器及該第二網路位址轉譯器會分別使用一連接埠,以透過各該連接埠傳送封包與接收封包;該行為感知伺服器會由另一個公共的網際網路協定位址,對該第一網路裝置與該第二網路裝置分別送出一同步/啟動封包,且各該同步/啟動封包會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器的各該連接埠送出;在該第一網路裝置或該第二網路裝置能接收到各該同步/啟動封包的狀態下,表示該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是允許Establishment then inbound SYN的封包順序出現;及在該第一網路裝置或該第二網路裝置無法接收到各該同步/啟動封包的狀態下,表示該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是不允許Establishment then inbound SYN的封包順序出現。 [28] 如請求項27所述之建立一傳輸控制協定連線的方法,其中該行為感知伺服器尚會再分別傳送另一同步/啟動封包至該第一網路位址轉譯器與該第二網路位址轉譯器中尚未開啟的連接埠,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的該Si封包過濾規則是否為直接丟棄該另一同步/啟動封包、回覆一復位請求封包或回覆一目標主機不可達封包之其中之一。 [29] 如請求項28所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置與該第二網路裝置會透過SoSi傳輸控制協定狀態追蹤行為測試、SoRiSi傳輸控制協定狀態追蹤行為測試、SoUiSi傳輸控制協定狀態追蹤行為測試與SoTiSi傳輸控制協定狀態追蹤行為測試,以測試對應之該第一網路位址轉譯器及該第二網路位址轉譯器的傳輸控制協定狀態追蹤行為。 [30] 如請求項29所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第一同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到該第一同步/啟動封包後,會分別經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,回覆一第二同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第二同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是能夠允許SYN-out SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第二同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out SYN-in的封包順序。 [31] 如請求項30所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoRiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第三同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第三同步/啟動封包後,會先分別回覆一個復位請求封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第四同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置接收到各該第四同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out RST-in SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第四同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out RST-in SYN-in的封包順序。 [32] 如請求項31所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoUiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第五同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第五同步/啟動封包後,會先分別回覆一個目標主機不可達封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第六同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第六同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out UNR-in SYN-in的封包順序;及在該第一網路裝置載該第二網路裝置無法接收到各該第六同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out UNR-in SYN-in的封包順序。 [33] 如請求項32所述之建立一傳輸控制協定連線的方法,該方法尚包括下列步驟,以進行SoTiSi傳輸控制協定狀態追蹤行為測試:該第一網路裝置與該第二網路裝置會經由對應之該第一網路位址轉譯器及該第二網路位址轉譯器,分別送出一第七同步/啟動封包至該行為感知伺服器;該行為感知伺服器接收到各該第七同步/啟動封包後,會先分別回覆一個存活時間過期封包至該第一網路位址轉譯器與第二網路位址轉譯器,再分別經由該第一網路位址轉譯器與第二網路位址轉譯器,回覆一第八同步/啟動封包至該第一網路裝置與該第二網路裝置;在該第一網路裝置或該第二網路裝置能接收到各該第八同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是允許SYN-out TTL-in SYN-in的封包順序;及在該第一網路裝置或該第二網路裝置無法接收到各該第八同步/啟動封包的狀態下,表示該第一網路位址轉譯器或第二網路位址轉譯器是不允許SYN-out TTL-in SYN-in的封包順序。 [34] 如請求項33所述之建立一傳輸控制協定連線的方法,其中複數個候選的穿越技術包括ESi、SNT、SLT與中繼。 [35] 如請求項34所述之建立一傳輸控制協定連線的方法,其中在該第一網路位址轉譯器或第二網路位址轉譯器能適用一種以上之穿越技術的狀態下,該等穿越技術被選擇的優先權由高至低依序為ESi、SNT、SLT與中繼。 [36] 如請求項35所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則是允許Establishment then inbound SYN的封包順序的狀態下,係由該第二網路裝置或該第一網路裝置傳送同步/啟動封包予該第一網路裝置或該第二網路裝置。 [37] 如請求項35所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的封包過濾規則均是不允許Establishment then inbound SYN的封包順序,且該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆為隨機依賴的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [38] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [39] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆RST封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [40] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SNT的穿越技術。 [41] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [42] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆復位請求封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [43] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用SLT的穿越技術。 [44] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為直接丟棄同步/啟動封包,SoSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [45] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆復位請求封包,SoRiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。 [46] 如請求項37所述之建立一傳輸控制協定連線的方法,其中該第一網路裝置及/或該第二網路裝置判斷出該第一網路位址轉譯器或該第二網路位址轉譯器的映射行為皆非為隨機依賴,且Si封包過濾規則係為回覆目標主機不可達封包,SoUiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包,SoTiSi傳輸控制協定狀態追蹤行為測試結果係為不接收同步/啟動封包的狀態下,第一網路裝置與第二網路裝置係採用中繼的穿越技術。
类似技术:
公开号 | 公开日 | 专利标题 TWI448129B|2014-08-01|According to the behavior of the network address translator to establish a transmission control protocol connection method USRE47566E1|2019-08-06|NAT traversal for mobile network devices Guha et al.2008|NAT Behavioral requirements for TCP Srisuresh et al.2008|State of peer-to-peer | communication across network address translators | Ford et al.2005|Peer-to-Peer Communication Across Network Address Translators. JP5865684B2|2016-02-17|コンテンツセントリック・ネットワークにおけるネットワークアドレス変換によるカストディアンルーティング US8650312B2|2014-02-11|Connection establishing management methods for use in a network system and network systems using the same US20070171835A1|2007-07-26|Information processing device, and bubble packet transmission method and program RU2543304C2|2015-02-27|Способ и устройство, для ретрансляции пакетов JP5898480B2|2016-04-06|コンテンツセントリックネットワークにおけるセッション開始プロトコル(sip)ベースのカストディアンルーティング CN105743852B|2020-10-27|通过http实现跨越网闸进行Socket保持连接通信的方法及系统 JP3999785B2|2007-10-31|通信方法 CN109194778B|2021-11-05|一种基于kcp协议的nat穿透方法 Srirama et al.2014|Tcp hole punching approach to address devices in mobile networks JP2007181122A|2007-07-12|通信方法 US20180063255A1|2018-03-01|Method and Apparatus for Terminal Application Accessing NAS US10079802B2|2018-09-18|Network transmission method and network transmission system for a multi-layer network address translator structure CN108512833A|2018-09-07|一种防范攻击方法及装置 Goyal et al.2015|Global data plane router on click Phuoc et al.2008|NAT traversal techniques in peer-to-peer networks TW201545502A|2015-12-01|網路連線策略管理裝置及方法 Irvine2010|DHT-based NAT Traversal JP2007274063A|2007-10-18|通信装置、通信方法および記録媒体 Bonaventure et al.2016|MPTCP Working Group F. Duchene Internet-Draft UCLouvain Intended status: Experimental V. Olteanu Expires: May 4, 2017 University Politehnica of Bucharest Venkatachalam2006|Developing P 2 P Protocols across NAT
同族专利:
公开号 | 公开日 US20130117437A1|2013-05-09| CN103108057A|2013-05-15| CN103108057B|2016-08-03| TWI448129B|2014-08-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 TWI551100B|2014-06-13|2016-09-21|物聯智慧科技(深圳)有限公司|用以進行點對點連接的方法、伺服器與裝置|US20020157090A1|2001-04-20|2002-10-24|Anton, Jr. Francis M.|Automated updating of access points in a distributed network| US7676579B2|2002-05-13|2010-03-09|Sony Computer Entertainment America Inc.|Peer to peer network communication| JP2005051473A|2003-07-28|2005-02-24|Sony Corp|ネットワーク相互接続装置及びネットワーク相互接続方法、名前解決装置、並びにコンピュータ・プログラム| US8065418B1|2004-02-02|2011-11-22|Apple Inc.|NAT traversal for media conferencing| US20060072569A1|2004-10-04|2006-04-06|Wizzysoft Corporation|Network address translation protocol for transmission control protocol connections| US7633869B1|2004-10-18|2009-12-15|Ubicom, Inc.|Automatic network traffic characterization| US7912046B2|2005-02-11|2011-03-22|Microsoft Corporation|Automated NAT traversal for peer-to-peer networks| US7646775B2|2005-03-08|2010-01-12|Leaf Networks, Llc|Protocol and system for firewall and NAT traversal for TCP connections| JP2006261938A|2005-03-16|2006-09-28|Sony Corp|通信システム、通信装置および方法、記録媒体、並びにプログラム| TWI311417B|2006-04-28|2009-06-21|Hon Hai Prec Ind Co Ltd|Network apparatus and nat configuration method| US8656017B2|2007-05-16|2014-02-18|Microsoft Corporation|Peer-to-peer collaboration system with edge routing| US8631155B2|2007-06-29|2014-01-14|Microsoft Corporation|Network address translation traversals for peer-to-peer networks| RU2010127309A|2007-12-05|2012-01-10|Онлайв, Инк. |Система и способ сжатия интерактивного потокового видео| WO2010094047A1|2009-02-14|2010-08-19|Bvisual S.A.|Method and system for videoconferencing or data transfer between clients behind different network address translators| US7941551B2|2009-02-25|2011-05-10|Microsoft Corporation|Tunneling of remote desktop sessions through firewalls| US20110219123A1|2010-03-05|2011-09-08|Bo Yang|Network firewall and nat traversal for tcp and related protocols|KR20130052240A|2011-11-11|2013-05-22|삼성전자주식회사|네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치| US9419985B1|2012-09-25|2016-08-16|Morta Security Inc|Interrogating malware| TWI493924B|2013-04-10|2015-07-21|D Link Corp|Through the two network devices to help complete the STUN technology network system and its methods| CN104580543A|2013-10-16|2015-04-29|福达新创通讯科技有限公司|数据传输方法、系统及其记录媒体| US10855681B2|2017-01-11|2020-12-01|Koga Electronics Co., Ltd.|Data communication method|
法律状态:
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 TW100140891A|TWI448129B|2011-11-09|2011-11-09|According to the behavior of the network address translator to establish a transmission control protocol connection method|TW100140891A| TWI448129B|2011-11-09|2011-11-09|According to the behavior of the network address translator to establish a transmission control protocol connection method| US13/347,793| US20130117437A1|2011-11-09|2012-01-11|Method for establising tcp connecting according to nat behaviors| CN201210071463.8A| CN103108057B|2011-11-09|2012-03-16|根据网络地址转译器的行为建立传输控制协议联机的方法| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|